package com.tequila.core.dao;

import com.tequila.domain.dto.UserDto;
import com.tequila.domain.entity.User;
import com.tequila.domain.query.UserQuery;

import java.util.List;

public interface UserDao {
    User queryById(Long id);

    List<UserDto> queryByIdList(List<Long> idList);

    List<UserDto> queryListByParam(UserQuery query);

    List<UserDto> queryPageListByParam(UserQuery query);

    int queryPageCountByParam(UserQuery query);

    int insert(User entity);

    int insertSelective(User entity);

    int updateById(User param);

    int updateSelectiveById(User param);

    int deleteById(Long id);

    int deleteByIdList(List<Long> idList);

    User selectByOpenid(String openid);
}